Added getVCpuCount to XendDomainInfo and use that and getName, getDomain,
authoremellor@ewan <emellor@ewan>
Sat, 17 Sep 2005 16:34:58 +0000 (17:34 +0100)
committeremellor@ewan <emellor@ewan>
Sat, 17 Sep 2005 16:34:58 +0000 (17:34 +0100)
getTargetMemory inside image.py to decouple the latter from the internals of
the former.  Move the definition of xc inside image.py to please pylint.

Signed-off-by: Ewan Mellor<ewan@xensource.com>
tools/python/xen/xend/XendDomainInfo.py
tools/python/xen/xend/image.py

index 36e93472df14aa732735f7018337f185abdb0f59..564d6540019edb00f1b661578562bb3cd33c8332 100644 (file)
@@ -334,6 +334,9 @@ class XendDomainInfo:
     def getName(self):
         return self.name
 
+    def getVCpuCount(self):
+        return self.vcpus
+
     def getSsidref(self):
         return self.ssidref
 
index cb37263423df2242c74961b2385b74460d75db32..b4b9dc4810c5bb3f8151d7cc9ed374e32d1f3224 100644 (file)
@@ -18,7 +18,7 @@
 import os, string
 import re
 
-import xen.lowlevel.xc; xc = xen.lowlevel.xc.new()
+import xen.lowlevel.xc
 from xen.xend import sxp
 from xen.xend.XendError import VmError
 from xen.xend.XendLogging import log
@@ -27,6 +27,10 @@ from xen.xend.xenstore.xstransact import xstransact
 
 from xen.xend.server import channel
 
+
+xc = xen.lowlevel.xc.new()
+
+
 MAX_GUEST_CMDLINE = 1024
 
 class ImageHandler:
@@ -155,7 +159,8 @@ class ImageHandler:
                 self.unlink(self.kernel)
                 self.unlink(self.ramdisk)
             if dom <= 0:
-                raise VmError('Creating domain failed: name=%s' % self.vm.name)
+                raise VmError('Creating domain failed: name=%s' %
+                              self.vm.getName())
         log.debug("initDomain: cpu=%d mem_kb=%d ssidref=%d dom=%d", cpu, mem_kb, ssidref, dom)
         xc.domain_setcpuweight(dom, cpu_weight)
         xc.domain_setmaxmem(dom, mem_kb)
@@ -190,14 +195,15 @@ class ImageHandler:
         if self.ramdisk and not os.path.isfile(self.ramdisk):
             raise VmError('Kernel ramdisk does not exist: %s' % self.ramdisk)
         if len(self.cmdline) >= MAX_GUEST_CMDLINE:
-            log.warning('kernel cmdline too long, domain %d', self.vm.domid)
+            log.warning('kernel cmdline too long, domain %d',
+                        self.vm.getDomain())
         
         log.info("buildDomain os=%s dom=%d vcpus=%d", self.ostype,
-                 self.vm.domid, self.vm.vcpus)
+                 self.vm.getDomain(), self.vm.getVCpuCount())
         err = self.buildDomain()
         if err != 0:
             raise VmError('Building domain failed: ostype=%s dom=%d err=%d'
-                          % (self.ostype, self.vm.domid, err))
+                          % (self.ostype, self.vm.getDomain(), err))
 
     def getDomainMemory(self, mem_mb):
         """Memory (in KB) the domain will need for mem_mb (in MB)."""
@@ -237,23 +243,23 @@ class LinuxImageHandler(ImageHandler):
         else:
             console_evtchn = 0
 
-        log.debug("dom            = %d", self.vm.domid)
+        log.debug("dom            = %d", self.vm.getDomain())
         log.debug("image          = %s", self.kernel)
         log.debug("store_evtchn   = %d", store_evtchn)
         log.debug("console_evtchn = %d", console_evtchn)
         log.debug("cmdline        = %s", self.cmdline)
         log.debug("ramdisk        = %s", self.ramdisk)
         log.debug("flags          = %d", self.flags)
-        log.debug("vcpus          = %d", self.vm.vcpus)
+        log.debug("vcpus          = %d", self.vm.getVCpuCount())
 
-        ret = xc.linux_build(dom            = self.vm.domid,
+        ret = xc.linux_build(dom            = self.vm.getDomain(),
                              image          = self.kernel,
                              store_evtchn   = store_evtchn,
                              console_evtchn = console_evtchn,
                              cmdline        = self.cmdline,
                              ramdisk        = self.ramdisk,
                              flags          = self.flags,
-                             vcpus          = self.vm.vcpus)
+                             vcpus          = self.vm.getVCpuCount())
         if isinstance(ret, dict):
             self.set_vminfo(ret)
             return 0
@@ -297,22 +303,22 @@ class VmxImageHandler(ImageHandler):
 
     def buildDomain(self):
         # Create an event channel
-        self.device_channel = channel.eventChannel(0, self.vm.domid)
+        self.device_channel = channel.eventChannel(0, self.vm.getDomain())
         log.info("VMX device model port: %d", self.device_channel.port2)
         if self.vm.store_channel:
             store_evtchn = self.vm.store_channel.port2
         else:
             store_evtchn = 0
-        ret = xc.vmx_build(dom            = self.vm.domid,
+        ret = xc.vmx_build(dom            = self.vm.getDomain(),
                            image          = self.kernel,
                            control_evtchn = self.device_channel.port2,
                            store_evtchn   = store_evtchn,
-                           memsize        = self.vm.memory,
+                           memsize        = self.vm.getTargetMemory(),
                            memmap         = self.memmap_value,
                            cmdline        = self.cmdline,
                            ramdisk        = self.ramdisk,
                            flags          = self.flags,
-                           vcpus          = self.vm.vcpus)
+                           vcpus          = self.vm.getVCpuCount())
         if isinstance(ret, dict):
             self.set_vminfo(ret)
             return 0
@@ -391,7 +397,7 @@ class VmxImageHandler(ImageHandler):
         elif vnc:
             ret = ret + ['-vnc', '-k', 'en-us']
         if vnc:
-            vncport = int(self.vm.domid) + 5900
+            vncport = int(self.vm.getDomain()) + 5900
             ret = ret + ['-vncport', '%d' % vncport]
         return ret
 
@@ -405,9 +411,9 @@ class VmxImageHandler(ImageHandler):
         vnc = self.vncParams()
         if len(vnc):
             args = args + vnc
-        args = args + ([ "-d",  "%d" % self.vm.domid,
+        args = args + ([ "-d",  "%d" % self.vm.getDomain(),
                   "-p", "%d" % self.device_channel.port1,
-                  "-m", "%s" % self.vm.memory ])
+                  "-m", "%s" % self.vm.getTargetMemory() ])
         args = args + self.dmargs
         env = dict(os.environ)
         env['DISPLAY'] = self.display